package com.dedupeer.gui.component.renderer;
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import com.dedupeer.gui.component.model.StoredFileDataModel;
import com.dedupeer.navigation.DFolder;
import com.dedupeer.utils.FileUtils;
/**
* @author Paulo Fernando (pf@paulofernando.net.br)
*/
public class IconLabelRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 6335367333085684949L;
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
ImageIcon icon = null;
JLabel iconLabel = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
row, column);
if(((StoredFileDataModel) table.getModel()).getStoredFileByRow(row) instanceof DFolder) {
if(column == 0) { //icon must appear only in the first column
icon = (String) value != null ? FileUtils.getFolderIcon() : null;
}
} else {
icon = FileUtils.getIconByFileType((String) value);
}
iconLabel.setIcon(icon);
if(isSelected) {
iconLabel.setBackground(table.getSelectionBackground());
iconLabel.setForeground(table.getSelectionForeground());
} else {
iconLabel.setBackground(table.getBackground());
iconLabel.setForeground(table.getForeground());
}
return iconLabel;
}
}